#!/bin/bash
# **********************************************************
# * Author : liangliangSu
# * Email : sll917@hotmail.com
# * Create time : 2023-02-04 20:14
# * Filename : 02编程语言分类.sh
# **********************************************************
: '
编译型语言：
==程序在执行之前需要一个专门的编译过程==，把程序编译成为机器语言文件，运行时不需要重新翻译，直接使用编译的结果就行了。程序执行效率高，依赖编译器，跨平台性差些。如C、C++

解释型语言：
程序不需要编译，程序在运行时由==解释器==翻译成机器语言，每执行一次都要翻译一次。因此效率比较低。比如Python/JavaScript/ Perl /ruby/Shell等都是解释型语言。

	编译器					             --->X86架构
C/C++ ------------> 编译 ---------> 二进制的机器码 ----> CPU --->IBM/Power
	gcc						     --->HP/安腾
  	
	解释器					        
shell ------------> 解释 ---------> 执行
	bash/bin				

	编译器					     
java ------------> 编译 ---------> 二进制的字节码 ------> Java虚拟机（jvm）       
	javac					
  	
/语言分类
总结：

编译型语言比解释型语言==速度较快==，但是不如解释型语言==跨平台性好==。
如果做底层开发或者大型应用程序或者操作系开发一==般都用编译型语言==；
如果是一些服务器脚本及一些辅助的接口，对速度要求不高、对各个平台的==兼容性有要求==的话则一般都用==解释型语言==。
'
: <<!
3. shell介绍
==shell就是人机交互的一个桥梁==

shell的种类
cat /etc/shells 
/bin/sh   #是bash shell的一个快捷方式
/bin/bash #bash shell是大多数Linux默认的shell，包含的功能几乎涵盖shell所有的功能
/sbin/nologin    #表示非交互，不能登录操作系统
/bin/dash        #小巧，高效，功能相比少一些
/bin/tcsh        #是csh的增强版，完全兼容csh
/bin/csh        #具有C语言风格的一种shell，具有许多特性，但也有一些缺陷
用户在终端（终端就是bash的接口）输入命令
|
               bash          //bash就是shell的一种类型（bash shell）
        |
       kernel
        |  
       物理硬件等	

4. shell脚本
什么是shell脚本？
一句话概括
简单来说就是将需要执行的命令保存到文本中，==按照顺序执行==。它是解释型的，意味着不需要编译。
准确叙述
若干命令 + 脚本的基本格式 + 脚本特定语法 + 思想= shell脚本

什么时候用到脚本？
重复化、复杂化的工作，通过把工作的命令写成脚本，以后仅仅需要执行脚本就能完成这些工作。

① 自动化分析处理
② 自动化备份
③ 自动化批量部署安装
④ 等等…

如何学习shell脚本？
尽可能记忆更多的命令
掌握脚本的标准的格式（指定魔法字节、使用标准的执行方式运行脚本）
必须==熟悉掌握==脚本的基本语法（重点)

脚本的基本写法：
#!/bin/bash
//脚本第一行， #！魔法字符，指定脚本代码执行的程序。即它告诉系统这个脚本需要什么解释器来执行，也就是使用哪一种Shell
//以下内容是对脚本的基本信息的描述
# Name: 名字
# Desc:描述describe
# Path:存放路径
# Usage:用法
# Update:更新时间

//下面就是脚本的具体内容
commands
...
脚本执行方法：
!

#标准脚本执行方法（建议）：（魔法字节指定的程序会生效）
echo '(1)-----------------------完美分割线--------------------------------'
cat shell.sh 
echo '(2)-----------------------完美分割线--------------------------------'
chmod +x shell.sh 
$PWD/shell.sh 
./shell.sh 

#非标准的执行方法（不建议）：（魔法字节指定的程序不会运作）
echo '(3)-----------------------完美分割线--------------------------------'
bash shell.sh
sh shell.sh
echo '(4)-----------------------完美分割线--------------------------------'
bash -x shell.sh

#-x:一般用于排错，查看脚本的执行过程
#-n:用来查看脚本的语法是否有问题
#注意：如果脚本没有加可执行权限，不能使用标准的执行方法执行，bash shell.sh

#其他：
source shell2.sh
. shell2.sh
#source 和 . 表示读取文件，执行文件里的命令

